current version 1.1 - 2nd September 2024
version | date | comment |
---|---|---|
1.0 | 25/Jan/2024 | module split from reservoirs |
1.1 | 02/Sep/2024 | routine DiversioSaveStatus to save discharge for starting next simulation |
1.2 | 04/Mar/2025 | no more need to assign weir-change-doy in diversion configuration file |
license: GNU GPL http://www.gnu.org/licenses/
This module includes data and routines to manage diversions along the river network in the distributed model. The module can manage both bypass channels (diverted flow from a point upstream is discharged back to the same river), and diversion channels (diverted flow is discharged into another natural drainage system nearby).
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(Diversion), | public, | POINTER | :: | diversionChannels | |||
integer(kind=short), | public | :: | dtDiversion | ||||
integer(kind=short), | public | :: | dtOutDiversion | ||||
integer(kind=short), | private | :: | nDiversions |
total number of diversions |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | PinChannel |
Input discharge into diversion at time t (m3/s) |
|||
real(kind=float), | public | :: | PoutChannel |
Output discharge into diversion at time t (m3/s) |
|||
real(kind=float), | public | :: | QinChannel |
Input discharge into diversion at time t+dt (m3/s) |
|||
real(kind=float), | public | :: | Qout |
discharge flowing in the natural river downstream diversion (m3/s) |
|||
real(kind=float), | public | :: | QoutChannel |
Output discharge into diversion at time t+dt (m3/s) |
|||
integer(kind=short), | public | :: | c |
cell column j |
|||
real(kind=float), | public | :: | channelBankSlope |
diversion channel section bank slope (deg) |
|||
real(kind=float), | public | :: | channelLenght |
diversion channel lenght (m) |
|||
real(kind=float), | public | :: | channelManning |
diversion channel Manning roughness [s m^-1/3] |
|||
real(kind=float), | public | :: | channelSlope |
diversion channel slope (m/m) |
|||
real(kind=float), | public | :: | channelWidth |
diversion channel bottom width (m) |
|||
integer(kind=short), | public | :: | cout |
cell column where off-stream pool outflow is discharged |
|||
real(kind=float), | public | :: | eFlow(365) |
daily environmental flow [m3/s] |
|||
integer(kind=short), | public | :: | fileunitOut |
file unit for writing results |
|||
integer(kind=short), | public | :: | id |
diversion id |
|||
character(len=100), | public | :: | name |
diversion name |
|||
type(Diversion), | public, | POINTER | :: | next |
dynamic list |
||
integer(kind=short), | public | :: | r |
cell row i |
|||
integer(kind=short), | public | :: | rout |
cell row where off-stream pool outflow is discharged |
|||
type(Table), | public | :: | weir |
stream-diverted flow relationship |
|||
integer(kind=short), | public | :: | weirDOY(365) |
weir function used daily |
|||
real(kind=float), | public | :: | xout |
x coordinate where diverted flow is discharged |
|||
type(Coordinate), | public | :: | xyz |
easting, northing and elevation in real world |
|||
real(kind=float), | public | :: | yout |
y coordinate where diverted flow is discharged |
populate array of daily values
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*) | :: | value |
save diversion state variables on file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | pathOut | |||
type(DateTime), | intent(in), | optional | :: | time |
Initialize diversions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | fileIni |
diversion configuration file |
initialise files for output
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | pathOut |